package licode.unisop.oidc.authsa.utils;

import licode.unisop.oidc.auth.modal.AuthorContext;
import licode.unisop.oidc.auth.modal.OidcContext;
import licode.unisop.oidc.auth.modal.OidcToken;

/**
 * @author licode
 */
public class TokenUtil {
    public static OidcToken fromTokenSign(String accessToken, AuthorContext context) {
        OidcToken tokenInfo = null;
        if (null != context) {
            tokenInfo = new OidcToken("", accessToken, context.getAe(),
                    context.getRt(), context.getRe(), context.getSc());

            tokenInfo.setContext(new OidcContext());
            tokenInfo.setOpenId(context.calcLoginId());
            tokenInfo.setSsoToken(context.getSt());
            tokenInfo.setLastRenewalTime(context.getLrt());

            tokenInfo.getContext().setUserId(context.getUid());
            tokenInfo.getContext().setAccount(context.getAc());
            tokenInfo.getContext().setPeerIp(context.getPip());
            tokenInfo.getContext().setAuthType(context.getAt());
            tokenInfo.getContext().setRoleCodes(context.getRc());
            tokenInfo.getContext().setRoleNames(context.getRn());
            tokenInfo.getContext().setClientId(context.getCid());
            tokenInfo.getContext().setPlatformId(context.getPid());
            tokenInfo.getContext().setRealmId(context.getRid());
            tokenInfo.getContext().setTerminal(context.getTer());
            tokenInfo.getContext().setTenantId(context.getTid());
            tokenInfo.getContext().setClientId(context.getCid());
            tokenInfo.getContext().setLoginType(context.getLt());
        }
        return tokenInfo;
    }
}
